{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 02 Creating a histogram" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "import plotly.graph_objects as go\n", "import seaborn as sns" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "import findspark\n", "\n", "findspark.init()\n", "from pyspark.context import SparkContext\n", "from pyspark.sql import functions as F\n", "from pyspark.sql.session import SparkSession\n", "\n", "spark = SparkSession.builder.appName(\"statistics\").master(\"local\").getOrCreate()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![Creating a histogram fig 1](./imgs/02-02-01.png)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "ages = np.array(\n", " [1, 3, 27, 32, 5, 63, 26, 25, 18, 16, 4, 45, 29, 19, 22, 51, 58, 9, 42, 6]\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generating dataset using for loop" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "buckets = [\"0-9\", \"10-19\", \"20-29\", \"30-39\", \"40-49\", \"50-59\", \"60-69\"]\n", "ages_list = []\n", "for i in buckets:\n", " min_, max_ = i.split(\"-\")\n", " get_ages = ages[(ages >= int(min_)) & (ages <= int(max_))]\n", " ages_list.append(len(get_ages))\n", "dataset = {\"Buckets\": buckets, \"#\": ages_list}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Pandas" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Buckets#
00-96
110-193
220-295
330-391
440-492
550-592
660-691
\n", "
" ], "text/plain": [ " Buckets #\n", "0 0-9 6\n", "1 10-19 3\n", "2 20-29 5\n", "3 30-39 1\n", "4 40-49 2\n", "5 50-59 2\n", "6 60-69 1" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.DataFrame(dataset)\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Spark" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+-------+---+\n", "|Buckets| #|\n", "+-------+---+\n", "| 0-9| 6|\n", "| 10-19| 3|\n", "| 20-29| 5|\n", "| 30-39| 1|\n", "| 40-49| 2|\n", "| 50-59| 2|\n", "| 60-69| 1|\n", "+-------+---+\n", "\n" ] } ], "source": [ "sdf = spark.createDataFrame(zip(*dataset.values()), schema=list(dataset.keys()))\n", "sdf.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generating dataset using np histogram" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "bins = np.arange(0, 80, 10)\n", "ages_list, buckets = np.histogram(ages, bins)\n", "dataset = {\"Buckets\": buckets[1:].tolist(), \"#\": ages_list.tolist()}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Pandas" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Buckets#
0106
1203
2305
3401
4502
5602
6701
\n", "
" ], "text/plain": [ " Buckets #\n", "0 10 6\n", "1 20 3\n", "2 30 5\n", "3 40 1\n", "4 50 2\n", "5 60 2\n", "6 70 1" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.DataFrame(dataset)\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Spark" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+-------+---+\n", "|Buckets| #|\n", "+-------+---+\n", "| 10| 6|\n", "| 20| 3|\n", "| 30| 5|\n", "| 40| 1|\n", "| 50| 2|\n", "| 60| 2|\n", "| 70| 1|\n", "+-------+---+\n", "\n" ] } ], "source": [ "sdf = spark.createDataFrame(zip(*dataset.values()), list(dataset.keys()))\n", "sdf.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Histogram" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Matplotlib " ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEECAYAAAA8tB+vAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAS60lEQVR4nO3df2xV9f3H8de5p5RSCrkBi5khIEUxDkWmztCsCEYGZoz5Y4AU1mXUqWA3hspsi/xqrEjFjaAZWHQssSgIiITo5g+CCZJZQjZmhoCkCphSJUXpoLTl3t6e7x+EfkFbqOWe3nvePB//KO295/O+x+uzx9N7jo7neZ4AAGaEEj0AACC+CDsAGEPYAcAYwg4AxhB2ADAmJdEDSFJLS4tisc59OMd1nU4/NxGCNC+z+idI8wZpVilY817qrN26uW1+PSnCHot5qqtr6NRzw+H0Tj83EYI0L7P6J0jzBmlWKVjzXuqsmZm92vw6p2IAwBjCDgDGEHYAMIawA4AxhB0AjCHsAGCMbx93LC8v17Zt2xSNRpWbm6tJkyb5tRQA4By+hH3nzp3avXu31q5dq8bGRq1evdqPZQAAbfAl7Dt27NCQIUNUUFCg+vp6PfHEE34sAwBogy9hP378uGpqavTiiy+qurpaM2fO1DvvvCPHcdp8vOs6CofTO7VWTO1ffZWMmqKxTr/Wrua6IWb1SZDmDdKsUrDm9WtWX8IeDoeVlZWl1NRUZWVlqXv37vrmm2/Ut2/fNh9/KbcUyMzspauL3r6UcbvUoSXjVVt7MtFjdMjldGl2VwvSvEGaVQrWvIG6pcAtt9yiDz/8UJ7n6ejRo2psbFQ4HPZjKQDAt/hyxH7HHXdo165dmjhxojzP04IFC+S6bd+FDAAQX7593JFfmAJAYnCBEgAYQ9gBwBjCDgDGEHYAMIawA4AxhB0AjCHsAGAMYQcAYwg7ABhD2AHAGMIOAMYQdgAwhrADgDGEHQCMIewAYAxhBwBjCDsAGEPYAcAYwg4AxhB2ADCGsAOAMYQdAIwh7ABgDGEHAGMIOwAYQ9gBwBjCDgDGpPi14XvvvVcZGRmSpP79++uZZ57xaykAwDl8Cfvp06fleZ4qKir82DwA4AJ8Cfv+/fvV2Nio/Px8NTc367HHHtPw4cPbfbzrOgqH0/0YJSkF5bXGJGVm9kr0GB3SFI0FZr9KkuuGAjNvkGaVgjWvX7P6Eva0tDQ98MADmjRpkg4dOqQHH3xQ77zzjlJS2l4uFvNUV9fQqbWCEp5zdfa1drXMzF66uujtRI/RIYeWjFdt7clEj9Fh4XB6YN4HQZpVCta8lzpre/3zJeyDBg3SwIED5TiOBg0apHA4rNraWv3gBz/wYzkAwDl8+VTMxo0btWTJEknS0aNHVV9fr8zMTD+WAgB8iy9H7BMnTlRxcbFyc3PlOI4WL17c7mkYAEB8+VLb1NRU/elPf/Jj0wCAi+ACJQAwhrADgDGEHQCMIewAYAxhBwBjCDsAGEPYAcAYwg4AxhB2ADCGsAOAMYQdAIwh7ABgDGEHAGMIOwAYQ9gBwBjCDgDGEHYAMIawA4AxhB0AjCHsAGAMYQcAYwg7ABhD2AHAGMIOAMYQdgAwhrADgDG+hf3rr7/WqFGj9Nlnn/m1BACgDb6EPRqNasGCBUpLS/Nj8wCAC/Al7GVlZZoyZYr69evnx+YBABeQEu8Nbtq0SX369NHIkSO1atWqDj3HdR2Fw+nxHiVpXU6vtSsFab+6bigw8wZpVilY8/o1a9zD/sYbb8hxHH300Ufat2+fCgsLtXLlSmVmZrb7nFjMU11dQ6fWy8zs1dlRE6azr7WrBW3fBmW/Smd+CAVl3iDNKgVr3kudtb1/R+Me9ldffbX17/Py8rRo0aILRh0AEF983BEAjIn7Efu5Kioq/Nw8AKANHLEDgDGEHQCMIewAYAxhBwBjCDsAGEPYAcAYwg4AxhB2ADCGsAOAMYQdAIwh7ABgDGEHAGMIOwAYQ9gBwBjCDgDGEHYAMIawA4AxhB0AjCHsAGAMYQcAYwg7ABhD2AHAGMIOAMZcNOzvvffeeX8FACS3lPa+kZ+fr/T0dH322Wfq27evXnnlFY0dO7YrZwMAdEK7R+yrV6/W0qVL5bquKisrVVVVpenTp2vBggVdOR8A4Htq94i9uLhYN954ozIyMjRjxgxVVlbqb3/7m44cOdKV8wEAvqd2j9gff/xx9evXT0eOHNEjjzyiqqoqLVu2THv27LnoRmOxmIqLizVlyhTl5ubqwIEDcR0aANC+dsN+xRVXaMyYMbr55ptVXl6uH//4x/rpT3+qurq6i270gw8+kCStW7dOs2fP1rJly+I2MADgwto9FXPW8uXLJUnPP/+8JOmGG2646EbHjBmj0aNHS5JqamrUu3fvCz7edR2Fw+kX3a4FTdGYMjN7JXoMk4L0HnLdUGDmDdKsUrDm9WvWi4a90xtOSVFhYaHef//91h8K7YnFPNXVNXRqnaBFMq2bq6uL3k70GB1yaMn4RI/wvXT2PZQI4XB6YOYN0qxSsOa91Fnb65+vFyiVlZXp3Xff1fz589XQEIwdDQBB50vYN2/erPLycklSjx495DiOQiEucgWAruDLqZixY8equLhY06ZNU3Nzs+bOnau0tDQ/lgIAfIsvYU9PT2/9pSsAoGtxfgQAjCHsAGAMYQcAYwg7ABhD2AHAGMIOAMYQdgAwhrADgDGEHQCMIewAYAxhBwBjCDsAGEPYAcAYwg4AxhB2ADCGsAOAMYQdAIwh7ABgDGEHAGMIOwAYQ9gBwBjCDgDGEHYAMIawA4AxhB0AjCHsAGBMSrw3GI1GNXfuXB05ckSRSEQzZ87UnXfeGe9lAADtiHvYt2zZonA4rKVLl6qurk733HMPYQeALhT3sN91110aN26cJMnzPLmuG+8lAAAXEPew9+zZU5JUX1+vWbNmafbs2Rd9jus6CofT4z0KLjNBeg/FJGVm9kr0GB3SFI0FZlbpzLxBeS+4bsiXWeMedkn68ssvVVBQoKlTp2rChAkXfXws5qmurqFTawXpDQd/dfY9lAiZmb10ddHbiR6jQw4tGR+YWaUz89bWnkz0GB0SDqdf0vu2vf7FPezHjh1Tfn6+FixYoOzs7HhvHgBwEXH/uOOLL76oEydOaMWKFcrLy1NeXp6amprivQwAoB1xP2KfN2+e5s2bF+/NAgA6iAuUAMAYwg4AxhB2ADCGsAOAMYQdAIwh7ABgDGEHAGMIOwAYQ9gBwBjCDgDGEHYAMIawA4AxhB0AjCHsAGAMYQcAYwg7ABhD2AHAGMIOAMYQdgAwhrADgDGEHQCMIewAYAxhBwBjCDsAGEPYAcAYwg4AxhB2ADDGt7B//PHHysvL82vzAIB2pPix0ZdeeklbtmxRjx49/Ng8AOACfAn7gAED9MILL+iJJ57o0ONd11E4nO7HKLhMNEVjyszslegxkASC9F5oisZ8aZ8vYR83bpyqq6s7/PhYzFNdXUOn1grKP0D4K62bq6uL3k70GB12aMn4RI9gVpDeC4eWjFdt7clOP7+9/vHLUwAwhrADgDGEHQCM8S3s/fv31/r16/3aPACgHRyxA4AxhB0AjCHsAGAMYQcAYwg7ABhD2AHAGMIOAMYQdgAwhrADgDGEHQCMIewAYAxhBwBjCDsAGEPYAcAYwg4AxhB2ADCGsAOAMYQdAIwh7ABgDGEHAGMIOwAYQ9gBwBjCDgDGEHYAMIawA4AxhB0AjEnxY6MtLS1atGiRPv30U6Wmpqq0tFQDBw70YykAwLf4csS+detWRSIRvf7663r88ce1ZMkSP5YBALTBl7D/61//0siRIyVJw4cP1549e/xYBgDQBsfzPC/eG33yySc1duxYjRo1SpI0evRobd26VSkpvpz5AQCcw5cj9oyMDJ06dar1zy0tLUQdALqIL2G/+eabtX37dknSf/7zHw0ZMsSPZQAAbfDlVMzZT8UcOHBAnudp8eLFGjx4cLyXAQC0wZewAwAShwuUAMAYwg4AxhB2ADAmsJ9BDMptCz7++GM999xzqqio0OHDh1VUVCTHcXTttddq4cKFCoWS42drNBrV3LlzdeTIEUUiEc2cOVPXXHNNUs4bi8U0b948HTx4UI7jqKSkRN27d0/KWc/19ddf67777tPq1auVkpKStPPee++9ysjIkCT1799f999/v55++mm5rqucnBz97ne/S/CE5ysvL9e2bdsUjUaVm5ur2267LSn37aZNm/Tmm29Kkk6fPq19+/apoqLCn33rBdS7777rFRYWep7nebt37/ZmzJiR4Im+a9WqVd7Pf/5zb9KkSZ7ned7DDz/sVVZWep7nefPnz/fee++9RI53no0bN3qlpaWe53ne8ePHvVGjRiXtvO+//75XVFTkeZ7nVVZWejNmzEjaWc+KRCLeI4884o0dO9arqqpK2nmbmpq8u++++7yv/eIXv/AOHz7stbS0eL/97W+9Tz75JDHDtaGystJ7+OGHvVgs5tXX13vPP/980u7bcy1atMhbt26db/s28T/GOikIty0YMGCAXnjhhdY/f/LJJ7rtttskSbfffrv++c9/Jmq077jrrrv0hz/8QZLkeZ5c103aeceMGaOnnnpKklRTU6PevXsn7axnlZWVacqUKerXr5+k5H0v7N+/X42NjcrPz9evf/1r7dq1S5FIRAMGDJDjOMrJyUmaWSVpx44dGjJkiAoKCjRjxgyNHj06afftWf/9739VVVWl8ePH+7ZvAxv2+vr61v9clCTXddXc3JzAib5r3Lhx511x63meHMeRJPXs2VMnT55M1Gjf0bNnT2VkZKi+vl6zZs3S7Nmzk3relJQUFRYW6qmnntKECROSetZNmzapT58+rQciUvK+F9LS0vTAAw/or3/9q0pKSlRcXKwePXq0fj+ZZpWk48ePa8+ePVq+fLlKSko0Z86cpN23Z5WXl6ugoOA7DYvnrIE9xx7E2xace57v1KlT6t27dwKn+a4vv/xSBQUFmjp1qiZMmKClS5e2fi8Z5y0rK9OcOXM0efJknT59uvXryTbrG2+8Icdx9NFHH2nfvn0qLCzUN9980/r9ZJp30KBBGjhwoBzH0aBBg9SrVy/V1dW1fj+ZZpWkcDisrKwspaamKisrS927d9dXX33V+v1km/fEiRM6ePCgRowYofr6+vMaFs9ZA3vEHsTbFvzwhz/Uzp07JUnbt2/XrbfemuCJ/t+xY8eUn5+vP/7xj5o4caKk5J138+bNKi8vlyT16NFDjuPohhtuSMpZJenVV1/VmjVrVFFRoeuvv15lZWW6/fbbk3LejRs3tt5m++jRo2psbFR6erq++OILeZ6nHTt2JM2sknTLLbfoww8/lOd5rfNmZ2cn5b6VpF27dik7O1vSmYPTbt26+bJvA3vlaVBuW1BdXa3HHntM69ev18GDBzV//nxFo1FlZWWptLRUrusmekRJUmlpqf7xj38oKyur9WtPPvmkSktLk27ehoYGFRcX69ixY2pubtaDDz6owYMHJ+2+PVdeXp4WLVqkUCiUlPNGIhEVFxerpqZGjuNozpw5CoVCWrx4sWKxmHJycvToo48meszzPPvss9q5c6c8z9Ojjz6q/v37J+W+laSXX35ZKSkp+s1vfiPpzEGpH/s2sGEHALQtsKdiAABtI+wAYAxhBwBjCDsAGEPYAcAYwg6zdu7cqezsbOXl5elXv/qVJk+erL1793b4+dXV1Zo8eXKHHltTU6Nt27Z1dlQgrgg7TBsxYoQqKiq0Zs0azZo1S8uXL/dlncrKSv373//2ZdvA95Xc1+ADcXTixAn16dOn9SKhwYMHa+3atTp27Jh+//vfa8WKFdq6datisZhyc3OVk5Mj6cxtgouKinTttdfqoYceUkVFhd566y05jqOf/exnmjZtmlatWqWmpib96Ec/0ldffaXNmzcrFArpxhtv1Lx58xL8ynG5IewwrbKyUnl5eYpEItq/f7/+8pe/tN6O4Fx79+7V9u3btWHDBsViMf35z3/WT37yEzU3N2vOnDm69dZbNW3aNFVVVenvf/+7XnvtNUnS9OnTlZOTo4ceekiff/657rzzTv3yl7/UwoULNWzYML322mtqbm5O+vsYwRbebTBtxIgRWrZsmSTp888/15QpU877H7KcvfD64MGDGjZsmFzXleu6KioqUnV1tT799FNlZGSooaFBknTgwAHV1NS0XhL+v//9T4cPHz5vzWeeeUarV6/Ws88+q+HDh4uLu9HVOMeOy8YVV1whSerdu7dqa2slqfWXqVlZWdq7d69aWloUjUY1ffp0RSIRDR06VKtWrdKWLVu0f/9+ZWVl6ZprrtErr7yiiooK3XfffbruuusUCoXU0tIiSVq/fr1KSkq0Zs0a7du3T7t3707MC8ZliyN2mHb2VEwoFNKpU6dUVFSkvn37qqSkRFdddVXr//ji+uuv18iRI5Wbm6uWlhbl5uYqNTVV0pl7lC9cuFCFhYXasGGDsrOzlZubq0gkomHDhunKK6/UkCFDtHLlSg0dOlTXXXedpk6dqp49e+rKK6/UTTfdlMhdgMsQNwEDAGM4FQMAxhB2ADCGsAOAMYQdAIwh7ABgDGEHAGMIOwAY839RaySJJO3NPAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n, bins, _ = plt.hist(ages, buckets)\n", "plt.xlabel(\"Buckets\")\n", "plt.ylabel(\"#\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[6. 3. 5. 1. 2. 2. 1.] [ 0 10 20 30 40 50 60 70]\n" ] } ], "source": [ "print(n, bins)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Seanorn" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.histplot(ages, bins=buckets)\n", "plt.xlabel(\"Buckets\")\n", "plt.ylabel(\"#\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotly" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "marker": { "color": [ "lightyellow", "darkorange", "cornflowerblue", "magenta", "lightgreen", "darkviolet", "yellow" ] }, "nbinsx": 7, "type": "histogram", "x": [ 1, 3, 27, 32, 5, 63, 26, 25, 18, 16, 4, 45, 29, 19, 22, 51, 58, 9, 42, 6 ] } ], "layout": { "autosize": true, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "xaxis": { "autorange": true, "range": [ -0.5, 69.5 ], "title": { "text": "bucket" }, "type": "linear" }, "yaxis": { "autorange": true, "range": [ 0, 6.315789473684211 ], "title": { "text": "#" } } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAABLIAAAHCCAYAAAD7BuCfAAAgAElEQVR4Xu3db6jm5ZnY8XvDrpmwTIyZRmVM0FUCSlgNWQRLkU1ZoWkGoZUOyaaBdTWaaF4oo5HJgLY1MBlGHcyLaPwzblpScZlFKKJsILQuUmqRhhiQ+GKVDJsMmt1ZY3wRcSmW34nn5JnH4zy/57nuazq/uT6+2qy/5zrP/blukvHrOc/5nbfffvvt5i8CBAgQIECAAAECBAgQIECAAAECJ7nA7whZJ/mGvD0CBAgQIECAAAECBAgQIECAAIE1ASHLRSBAgAABAgQIECBAgAABAgQIEJiEgJA1iTV5kwQIECBAgAABAgQIECBAgAABAkKWO0CAAAECBAgQIECAAAECBAgQIDAJASFrEmvyJgkQIECAAAECBAgQIECAAAECBIQsd4AAAQIECBAgQIAAAQIECBAgQGASAkLWJNbkTRIgQIAAAQIECBAgQIAAAQIECAhZ7gABAgQIECBAgAABAgQIECBAgMAkBISsSazJmyRAgAABAgQIECBAgAABAgQIEBCy3AECBAgQIECAAAECBAgQIECAAIFJCAhZk1iTN0mAAAECBAgQIECAAAECBAgQICBkuQMECBAgQIAAAQIECBAgQIAAAQKTEBCyJrEmb5IAAQIECBAgQIAAAQIECBAgQEDIcgcIECBAgAABAgQIECBAgAABAgQmISBkTWJN3iQBAgQIECBAgAABAgQIECBAgICQ5Q4QIECAAAECBAgQIECAAAECBAhMQkDImsSavEkCBAgQIECAAAECBAgQIECAAAEhyx0gQIAAAQIECBAgQIAAAQIECBCYhICQNYk1eZMECBAgQIAAAQIECBAgQIAAAQJCljtAgAABAgQIECBAgAABAgQIECAwCQEhaxJr8iYJECBAgAABAgQIECBAgAABAgSELHeAAAECBAgQIECAAAECBAgQIEBgEgJC1iTW5E0SIECAAAECBAgQIECAAAECBAgIWe4AAQIECBAgQIAAAQIECBAgQIDAJASErEmsyZskQIAAAQIECBAgQIAAAQIECBAQstwBAgQIECBAgAABAgQIECBAgACBSQgIWZNYkzdJgAABAgQIECBAgAABAgQIECAgZLkDBAgQIECAAAECBAgQIECAAAECkxAQsiaxJm+SAAECBAgQIECAAAECBAgQIEBAyHIHCBAgQIAAAQIECBAgQIAAAQIEJiEgZE1iTd4kAQIECBAgQIAAAQIECBAgQICAkOUOECBAgAABAgQIECBAgAABAgQITEJAyJrEmrxJAgQIECBAgAABAgQIECBAgAABIcsdIECAAAECBAgQIECAAAECBAgQmISAkDWJNXmTBAgQIECAAAECBAgQIECAAAECQpY7QIAAAQIECBAgQIAAAQIECBAgMAkBIWsSa/ImCRAgQIAAAQIECBAgQIAAAQIEhCx3gAABAgQIECBAgAABAgQIECBAYBICQtYk1uRNEiBAgAABAgQIECBAgAABAgQICFnuAAECBAgQIECAAAECBAgQIECAwCQEhKxJrMmbJECAAAECBAgQIECAAAECBAgQELLcAQIECBAgQIAAAQIECBAgQIAAgUkICFmTWJM3SYAAAQIECBAgQIAAAQIECBAgIGS5AwQIECBAgAABAgQIECBAgAABApMQELImsSZvkgABAgQIECBAgAABAgQIECBAQMhyBwgQIECAAAECBAgQIECAAAECBCYhIGRNYk3eJAECBAgQIECAAAECBAgQIECAgJDlDhAgQIAAAQIECBAgQIAAAQIECExCQMiaxJq8SQIECBAgQIAAAQIECBAgQIAAASHLHSBAgAABAgQIECBAgAABAgQIEJiEgJA1iTV5kwQIECBAgAABAgQIECBAgAABAkKWO0CAAAECBAgQIECAAAECBAgQIDAJASFrEmvyJgkQIECAAAECBAgQIECAAAECBIQsd4AAAQIECBAgQIAAAQIECBAgQGASAkLWJNbkTRIgQIAAAQIECBAgQIAAAQIECAhZ7gABAgQIECBAgAABAgQIECBAgMAkBISsSazJmyRAgAABAgQIECBAgAABAgQIEBCy3AECBAgQIECAAAECBAgQIECAAIFJCAhZk1iTN0mAAAECBAgQIECAAAECBAgQICBkuQMECBAgQIAAAQIECBAgQIAAAQKTEBCyJrEmb5IAAQIECBAgQIAAAQIECBAgQEDIcgcIECBAgAABAgQIECBAgAABAgQmISBkTWJN3iQBAgQIECBAgAABAgQIECBAgICQ5Q4QIECAAAECBAgQIECAAAECBAhMQkDImsSavEkCBAgQIECAAAECBAgQIECAAAEhyx0gQIAAAQIECBAgQIAAAQIECBCYhICQNYk1eZMECBAgQIAAAQIECBAgQIAAAQJCljtAgAABAgQIECBAgAABAgQIECAwCQEhaxJr8iYJECBAgAABAgQIECBAgAABAgSELHeAAAECBAgQIECAAAECBAgQIEBgEgJC1iTW5E0SIECAAAECBAgQIECAAAECBAgIWe4AAQIECBAgQIAAAQIECBAgQIDAJASErEmsyZskQIAAAQIECBAgQIAAAQIECBAQstwBAgQIECBAgAABAgQIECBAgACBSQgIWZNYkzdJgAABAgQIECBAgAABAgQIECAgZLkDBAgQIECAAAECBAgQIECAAAECkxAQsiaxJm+SAAECBAgQIECAAAECBAgQIEBAyHIHCBAgQIAAAQIECBAgQIAAAQIEJiEgZE1iTd4kAQIECBAgQIAAAQIECBAgQICAkOUOECBAgAABAgQIECBAgAABAgQITEJAyJrEmrxJAgQIECBAgAABAgQIECBAgAABIcsdIECAAAECBAgQIECAAAECBAgQmISAkDWJNXmTBAgQIECAAAECBAgQIECAAAECQpY7QIAAAQIECBAgQIAAAQIECBAgMAkBIWsSa/ImCRAgQIAAAQIECBAgQIAAAQIEhCx3gAABAgQIECBAgAABAgQIECBAYBICQtYk1uRNEiBAgAABAgQIECBAgAABAgQICFnuAAECBAgQIECAAAECBAgQIECAwCQEhKxJrMmbJECAAAECBAgQIECAAAECBAgQELLcAQIECBAgQIAAAQIECBAgQIAAgUkICFmTWJM3SYAAAQIECBAgQIAAAQIECBAgIGS5AwQIECBAgAABAgQIECBAgAABApMQELImsSZvkgABAgQIECBAgAABAgQIECBAQMhyBwgQIECAAAECBAgQIECAAAECBCYhIGRNYk3eJAECBAgQIECAAAECBAgQIECAgJDlDhAgQIAAAQIECBAgQIAAAQIECExCQMiaxJq8SQIECBAgQIAAAQIECBAgQIAAASHLHSBAgAABAgQIECBAgAABAgQIEJiEgJA1iTV5kwQIECBAgAABAgQIECBAgAABAkJW8A4cOfrr4AQvJ0CAAAECBAgQIECAAAECBKoIbN/2gSpHTTmnkBVkFbKCgF5OgAABAgQIECBAgAABAgQKCQhZsWULWTG/JmQFAb2cAAECBAgQIECAAAECBAgUEhCyYssWsmJ+QlbQz8sJECBAgAAB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gACBcgJCVrmVOzABAgQIECBAgAABAgQIECBAYJoCQtY09+ZdEyBAgAABAgQIECBAgAABAgTKCQhZ5VbuwAQIECBAgAABAgQIECBAgACBaQoIWdPcm3dNgAABAgQIECBAgAABAgQIECgnIGSVW7kDEyBAgAABAgQIECBAgAABAgSmKSBkTXNv3jUBAgQIECBAgAABAgQIECBAoJyAkFVu5Q5MgAABAgQIECBAgAABAgQIEJimgJA1zb151wQIECBAgAABAgQIECBAgACBcgJCVrmVOzABAgQIECBAgAABAgQIECBAYJoCQtY09+ZdEyBAgAABAgQIECBAgAABAgTKCQhZ5VbuwAQIECBAgAABAgQIECBAgACBaQoIWdPcm3dNgAABAgQIECBAgAABAgQIECgnIGSVW7kDEyBAgAABAgQIECBAgAABAgSmKSBkTXNv3jUBAgQIECBAgAABAgQIECBAoJyAkFVu5Q5MgAABAgQIECBAgAABAgQIEJimgJA1zb151wQIECBAgAABAgQIECBAgACBcgJCVrmVOzABAgQIECBAgAABAgQIECBAYJoCQtY09+ZdEyBAgAABAgQIECBAgAABAgTKCQhZ5VbuwAQIECBAgAABAgQIECBAgACBaQoIWdPcm3dNgAABAgQIECBAgAABAgQIECgnIGSVW7kDEyBAgAABAgQIECBAgAABAgSmKSBkTXNv3jUBAgQIECBAgAABAgQIECBAoJyAkFVu5Q5MgAABAgQIECBAgAABAgQIEJimgJA1zb151wQIECBAgAABAgQIECBAgACBcgJCVrmVOzABAgQIECBAgAABAgQIECBAYJoCQtY09+ZdEyBAgAABAgQIECBAgAABAgTKCQhZ5VbuwAQIECBAgAABAgQIECBAgACBaQr8P9+16+cS1cesAAAAAElFTkSuQmCC", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data = [\n", " go.Histogram(\n", " x=ages,\n", " nbinsx=7,\n", " marker=dict(\n", " color=[\n", " \"lightyellow\",\n", " \"darkorange\",\n", " \"cornflowerblue\",\n", " \"magenta\",\n", " \"lightgreen\",\n", " \"darkviolet\",\n", " \"yellow\",\n", " ]\n", " ),\n", " )\n", "]\n", "layout = go.Layout(xaxis=dict(title=\"bucket\"), yaxis=dict(title=\"#\"))\n", "fig = go.Figure(data, layout)\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.1" } }, "nbformat": 4, "nbformat_minor": 4 }